#include "head.h"

// Helper function to remove the last directory from a path
void remove_last_dir(char* path,user_t* user) {
    if (path == NULL || strlen(path) == 0) return;

    // 找到最后一个斜杠
    char* last_slash = strrchr(path, '/'); 
    if (last_slash != NULL && last_slash != path) {
        *last_slash = '\0'; // 将最后一个斜杠替换为字符串结束符
    } else {
        // 如果路径是根目录，保持为根目录
        strcpy(path, user->path);
    }
}

int changedir(user_t* user,char* path, int net_fd) {
    char res[4096] = {0};
    recv(net_fd, res, sizeof(res), 0);

    if (strcmp(path, ".") == 0) {
        // cd .: 保持路径不变
        ;
    } else if (strcmp(path, "..") == 0) {
        // cd ..: 返回上一级目录
        remove_last_dir(user->path,user);
    }else if (strstr(res, "没有找到对应的路径") != NULL) {
        // 服务端没有找到对应的路径，输出错误提示
        printf("%s\n", res);
    }
    else {
        // 更新用户路径，拼接新的路径
        // 更新用户路径
        strcpy(user->path, res);
    }

    return 0;
}


